package com.zhuss.opus.db.dao.ext;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.zhuss.bean.vo.opus.invit.DetailInvitAppendVo;
import com.zhuss.opus.db.dao.gen.InvitAppendMapper;
import com.zhuss.opus.db.entity.InvitAppend;

@Mapper
public interface InvitAppendDao extends InvitAppendMapper {
	
	void create(InvitAppend record);
	
	void delete(InvitAppend record);
	
	Integer updateAlreadyRead(@Param("type") Integer type, @Param("toUserId") Long toUserId, @Param("isRead") Integer isRead);
	
	Integer countNoReadNum(@Param("type") Integer type, @Param("toUserId") Long toUserId, @Param("isRead") Integer isRead);
	
	List<DetailInvitAppendVo> listAppend(@Param("type") Integer type, @Param("toUserId") Long toUserId, @Param("creatorId") Long creatorId, @Param("start") Integer start, @Param("length") Integer length);

	Integer countListAppend(@Param("type") Integer type, @Param("toUserId") Long toUserId, @Param("creatorId") Long creatorId);
	
	DetailInvitAppendVo getByType(@Param("appendType") Integer appendType, @Param("invitId") Long invitId, @Param("creatorId") Long creatorId);
	
	List<DetailInvitAppendVo> listByType(@Param("appendType") Integer appendType, @Param("invitId") Long invitId, @Param("creatorId") Long creatorId);
	
	List<InvitAppend> listAll(@Param("area") Integer area);
	
	DetailInvitAppendVo detail(@Param("invitAppendId") Long invitAppendId);
}